package com.shu.mmall.dao;

import com.shu.mmall.pojo.User;
import org.apache.commons.lang3.StringUtils;
import org.apache.ibatis.annotations.Param;

/**
 * @author shujinhao
 */
public interface UserMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(User record);

    int insertSelective(User record);

    User selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);

    /**
     * 校验名称
     * @param username 用户名
     * @return 数量
     */
    int checkUsername(String username);

    /**
     * 校验邮箱
     * @param email 游戏
     * @return 结果数
     */
    int checkEmail(String email);

    /**
     * 登录并返回用户
     * @param username 用户名
     * @param password 密码
     * @return 用户信息
     */
    User selectLogin(@Param("username")String username,@Param("password")String password);

    /**
     * 查询问题
     * @param username 用户名
     * @return 问题
     */
    String selectQuestionByUsername(String username);

    /**
     * 校验答案
     * @param username 用户名
     * @param question 问题
     * @param answer 答案
     * @return 结果
     */
    int checkAnswer(@Param("username")String username,@Param("question")String question,@Param("answer")String answer);

    /**
     * 更新密码
     * @param username 用户名
     * @param passwordNew 密码
     * @return 更新数量
     */
    int updatePasswordByUsername(@Param("username") String username,@Param("passwordNew") String passwordNew);

    /**
     * 校验密码
     * @param password 密码
     * @param userId 用户id
     * @return 结果数量
     */
    int checkPassword(@Param("password")String password,@Param("userId")Integer userId);

    /**
     * 校验邮箱是否存在其他用户上面
     * @param email 邮箱
     * @param userId 用户id
     * @return 结果
     */
    int checkEmailByUserId(@Param("email")String email,@Param("userId")Integer userId);
}